package com.ruoyi.finance.test;

import java.util.ArrayList;
import java.util.List;

public class HeapAllocationExample {
    public static void main(String[] args) {
        // 用于存储对象的列表
        List<byte[]> objectList = new ArrayList<>();

        try {
            // 模拟不断创建新对象，促使对象在堆中分配内存
            while (true) {
                // 每次创建一个 1MB 的对象
                byte[] newObject = new byte[1024 * 1024];
                objectList.add(newObject);
                // 打印提示信息，表示创建了一个新对象
                System.out.println("Created a new 1MB object.");
            }
        } catch (OutOfMemoryError e) {
            // 当堆内存不足时，捕获 OutOfMemoryError 异常并打印错误信息
            System.out.println("Out of memory error: " + e.getMessage());
        }
    }
}